#!/bin/bash

echo "=========================================="
echo "招聘系统微服务启动脚本"
echo "=========================================="

# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
    echo "错误: Docker未安装，请先安装Docker"
    exit 1
fi

# 检查Docker Compose是否安装
if ! command -v docker-compose &> /dev/null; then
    echo "错误: Docker Compose未安装，请先安装Docker Compose"
    exit 1
fi

echo "1. 启动基础服务 (MySQL, RabbitMQ)..."
docker-compose up -d

echo "等待服务启动..."
sleep 30

echo "2. 检查服务状态..."
docker-compose ps

echo "3. 编译项目..."
mvn clean compile -DskipTests

echo "4. 启动微服务..."

# 启动Eureka服务注册中心
echo "启动Eureka服务注册中心..."
cd recruitment-eureka
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8761" &
cd ..

sleep 15

# 启动Spring Cloud Gateway服务
echo "启动Spring Cloud Gateway服务..."
cd recruitment-zuul
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8080" &
cd ..

sleep 10

# 启动认证服务
echo "启动认证服务..."
cd recruitment-auth
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8081" &
cd ..

sleep 10

# 启动求职者服务
echo "启动求职者服务..."
cd recruitment-jobseeker
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8082" &
cd ..

sleep 10

# 启动企业服务
echo "启动企业服务..."
cd recruitment-company
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8083" &
cd ..

sleep 10

# 启动简历服务
echo "启动简历服务..."
cd recruitment-resume
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8084" &
cd ..

sleep 10

# 启动招聘服务
echo "启动招聘服务..."
cd recruitment-job
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8085" &
cd ..

sleep 10

# 启动统计服务
echo "启动统计服务..."
cd recruitment-statistics
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8086" &
cd ..

echo "=========================================="
echo "所有服务启动完成！"
echo "=========================================="
echo "服务访问地址:"
echo "网关地址: http://localhost:8080"
echo "Eureka控制台: http://localhost:8761"
echo "RabbitMQ管理界面: http://localhost:15672"
echo "用户名/密码: guest/guest"
echo "=========================================="
echo "按 Ctrl+C 停止所有服务"
echo "=========================================="

# 等待用户中断
wait 